As it is known by one skilled in the art, the turbo codes are frequently used in digital communication systems to encode binary data to be transmitted through a transmission channel, for instance between a base station of a communication network and terminal equipment, such as third generation (3G) UMTS wireless equipment. Indeed, transmission channels frequently corrupt the transmitted signals inducing errors in received signals and the use of turbo codes allows a proper error protection. In order to encode binary sequences to be transmitted, split into blocks, transmission equipment (for instance a base station—or Node B—of a UMTS communication network) comprises a turbo encoder fed with data blocks (named systematic data or vector S) and adapted to apply a first recursive convolutional encoding of the vector S to generate a first parity vector P1 and, in parallel, to apply a second recursive convolutional encoding of the vector S, interleaved by a known vector component permutation, to generate a second parity vector P2. The systematic and the encoded vectors (or sequences) are then multiplexed according to a given scheme and modulated according to a given modulation, for instance, such as the ones defined by 3GPP specifications. The resulting signal is sent over a transmission channel to terminal (or user) equipment, itself comprising a receiver device supporting turbo decoding.
To decode the encoded data blocks, receiver equipment comprises a turbo decoder. Such a turbo decoder generally comprises an input buffer to store the encoded received sequence composed of RS, RP1 and RP2 respectively representing the sub-sequences S, P1 and P2, a first and a second SISO sub-decoder (“Soft Input Soft Output”), a first and a second interleaver, two de-interleavers and an iteration control module. The encoded received sequence composed of RS, RP1 and RP2 (representing S, P1 and P2), are processed in an iterative manner under the control of the iteration control module. A turbo decoder of this type is notably described in the patent documents WO 03/098811 and U.S. Pat. No. 6,732,327.
Some of the proposed turbo decoders use a so-called “sliding window” algorithm to process the received sequence composed of RS, RP1 and RP2. In an improvement of the sliding window algorithm, named “next iteration initialization”, forward and backward recursive calculations are used on sub-blocks of the data block, which is defined by the received sequences. Backward calculations are performed to determine for each sub-block and during each iteration, a set of state metrics (sometimes named a stake) that is used during the next iteration to determine a next metric set (or stake) till a final metric set (or stake) is obtained during the final iteration. Finally, the validity of each sub-block of the processed data block is established by an independent unit, which performs a CRC check.
In release 99 UMTS, if the CRC check fails, the decoded data is simply discarded. In release 5 UMTS, if the CRC check fails, an “ACK/NACK” message is sent back to the base station to acknowledge or ask for retransmission. This procedure is called HARQ (“Hybrid Automatic Repeat Request) and has been introduced for HSDPA (“High Speed Downlink Packet Access”).
This new downlink packet access HSDPA, evolution of the WCDMA and defined by the specification HSDPA 3G TR 25.212 of the 3GPP, requires a data decoding faster than the one provided by the known iterative turbo decoders.